This invention provides an improved data storage device, which may be a tape drive arranged to receive data from a computer, or the like. The invention also provides related methods.
An example of a data storage device is the tape drive, which receives user data from computers, particularly, but not exclusively to back-up the user data held on the computer onto a data-holding medium. In such back-up applications it is of prime importance that the user data is retrievable, since generally, this copy is the back-up copy that will only be required if the original has been lost or damaged. Therefore, there is an ongoing need to ensure that back-up data storage devices are as robust and secure as possible.
Once user data has been stored on the data-holding medium it can be held there for long periods. To recover the user data from the data-holding medium the data storage device must read the data-holding medium and regenerate the user data originally stored there. In some devices the user data backed-up on the data-holding medium accounts for only about 40% of the overall information held on the data-holding medium. The remaining 60% of the information is non-user data, such as headers or error detection and correction information that attempts to make the user data as secure as possible.
Therefore, in order to read the user data the storage device must accurately detect which is the user data within all of the information held on the data-holding medium. In view of the amount of information other than user data that is held on the data-holding medium, this can be problematic.
The storage device must also be able to detect and correct as many as possible of the errors which may have occurred in writing the user data to the data-holding medium or reading the user data from it, using the error detection and correction information,
The user data is normally split into discrete items, each item including the user data, the error detection and correction information and a header denoting its position in the writing sequence, a write pass number and header error detection information. If the header is corrupted, the data storage device will be able to detect this, but may not be able to correct it, so that the user data in that data item cannot be recovered. Some known data storage devices are able to correct the header, but not reliably, so that the user data in that data item may not be recovered accurately.
It is an object of the present invention to detect and then reliably correct errors in the header of a data item, particularly where the storage device writes a set of several data items at the same time on different channels.
According to a first aspect of the invention, a data reader is arranged to read data comprising user data and non-user data written across at least two channels of a data-holding medium, said data being arranged into a plurality of data items each containing user data and non-user data, with said non-user data holding information relating to said user data, including a header with information relating to said user data and header error detection information, and data items written across the said channels at the same time being identified as a set of data items, said data reader having a read head for reading a respective said channel of said data-holding medium to generate a data signal comprising said data items, and processing circuitry arranged to receive and process said data signals of a set of data items, including processing said header error detection information of each of said headers of said data items in said set to detect any of said headers which are in error, and further processing said headers to obtain information from a correct said header to correct a said header which is in error.
A set of data items written at the same time will have the same header information relating to write pass, and the general position in the writing sequence, while the header information specific to the channel to which the data item is written will be different. However, the channel specific information for a correct header can be used to derive the channel specific information for an incorrect header, so that all the important header information can be reconstructed accurately and reliably. This increases the number of data items that can be recovered and used.
Thus, as long as the processing circuitry can access the information relating to the channel assigned to each data item, this can be used to correct header information.
Preferably, the processing circuitry, on detecting a header which is in error, then determines a data item with a correct header, and modifies information taken from said correct header in order to correct said header which is in error.
A correct header is defined as one where the header error detection information is correct. The processing circuitry preferably creates a new header by taking information such as the write pass and the general writing sequence position from the correct header, and modifying the channel specific information from the correct header. The new header is preferably written to a spare memory storage area in the processing circuitry. This has the advantage that the header which is in error is still available if required.
Conveniently, the new header does not contain the header error detection information, as this is no longer necessary.
In a preferred embodiment, the data reader has eight read heads, reading eight data channels. The data reader may have any number of read heads, from two up to, for example sixteen, although any number is possible. The way in which the channel specific information is modified will depend on the number of channels.
According to a second aspect of the invention, we provide a data storage device incorporating a data reader according to the first aspect of the invention.
In the preferred embodiment, the data storage device is a tape drive. Such a tape drive may be arranged to read data held in any of the following formats: LTO (Linear Tape Open), DAT (Digital Audio Tape), DLT (Digital Linear Tape), DDS (Digital Data Storage), or any other format, although in the preferred embodiment the tape is LTO format.
Alternatively, the data storage device may be any one of the following: CDROM drive, DVD ROM/RAM drive, magneto optical storage device, hard drive, floppy drive, or any other form of storage device suitable for storing digital data.
According to a third aspect of the invention, we provide a method of reading data comprising user data and non-user data written across at least two channels of a data-holding medium, said data being arranged into a plurality of data items each containing user data and non-user data, with said non-user data holding information relating to said user data, including a header with information relating to said user data and header error detection information, and data items written across the said channels at the same time being identified as a set of data items, said method comprising:
reading each said channel of said data-holding medium;
generating a data signal comprising said data items for each channel;
processing said data signals of a set of data items, including processing said header error detection information to detect any of said headers of said set of data items which are in error; and
correcting a said header which is in error by obtaining information from a correct said header.
The method enables reconstruction of an incorrect header from a correct one, as the set of data items will have the same header information relating to write pass, and general position in writing sequence, but different channel specific information. The channel specific information for a correct header can be used to derive the channel specific information for a header which is in error. This increases the number of data items which can be recovered and used.
The step of correcting the header includes determining a header which is correct, and modifying information taken from said correct header to correct said header which is in error.
Determining a correct header includes checking that the header error detection information is correct. Correcting a header which is in error includes creating a new header by taking information, such as the write pass and the general writing sequence position from a correct header and modifying the channel specific information from the correct header.
Correcting the header also includes writing the new header to a spare memory storage area in the data reader.
According to a fourth aspect of the invention there is provided a computer readable medium having stored therein instructions for causing a processing unit to execute the method of the third aspect of the invention.
The computer readable medium, although not limited to, may be any one of the following: a floppy disk, a CDROM, a DVD ROM/RAM, a ZIP(trademark) disk, a magneto optical disc, a hard drive, a transmitted signal (including an internet download, file transfer, etc.).